Compositional Reasoning for Pointer Structures

نویسندگان

  • Yifeng Chen
  • Jeff W. Sanders
چکیده

Canonical trace model of Hoare and He supports a satisfactory theory of graph properties. We use it to define a technique for the general composition of properties that extends the parallel-by-merge of Unifying Theories of Programming, and apply that to unique decompositions. Applications are provided to the fundamental concepts of acyclicity, reachability and canonicity; and those are used, in the form of rules in Hoare logic, to verify the correctness of an abstract Object-Oriented program.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reasoning about Pointer Structures in Java

Java programs often use pointer structures for normal computations. A verification system for Java should have good proof support for reasoning about those structures. However, the literature for pointer verification almost always uses specifications and definitions that are tailored to the problem under consideration. We propose a generic specification for Java pointer structures that allows t...

متن کامل

Programming Data Structures in Logic

Current programming languages that are grounded in a formal logic — such as pure Lisp (based on the lambda calculus) and Prolog (based on Horn clause logic) — do not support the use of complex, pointer-based data structures. The lack of this important feature in logically grounded languages contrasts sharply with its strong support in the imperative programming languages that have enjoyed wide ...

متن کامل

Relational Semantics for Higher-Order Functional Programs

Much work has been done on the semantics of programs with local state. Most of this work involves complex storage modeling with pointers and memory cells, complicated categorical constructions, and reasoning in the presence of context. We show how a relatively simple relational semantics can be used to avoid these complications. We provide a natural relational semantics for a programming langua...

متن کامل

Reasoning About Data-Parallel Pointer Programs in a Modal Extension of Separation Logic

This paper proposes a modal extension of Separation Logic [8, 11] for reasoning about data-parallel programs that manipulate heap allocated linked data structures. Separation Logic provides a formal means for expressing allocation of disjoint substructures, which are to be processed in parallel. A modal operator is also introduced to relate the global property of a parallel operation with the l...

متن کامل

Reasoning about Pointers in Refinement Calculus

Pointers are an important programming concept. They are used explicitely or implicitly in many programming languages. In particular, the semantics of object-oriented programming languages rely on pointers. We introduce a semantics for pointer structures. Pointers are seen as indexes and pointer fields are functions from these indexes to values. Using this semantics we turn all pointer operation...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006